Electron 应用上架 App Store(前置准备)
概述
Electron 应用上架 macOS App Store 涉及大量前置准备工作,包括证书申请、App ID 注册、Provisioning Profile 配置等。本节提供完整的流程指南和排错思路。
前置准备清单
1. 证书准备(共 5 个)
| 证书类型 | 用途 | 申请方式 |
|---|---|---|
| 3rd Party Mac Developer Application | MAS 应用签名 | Xcode 自动生成 |
| 3rd Party Mac Developer Installer | MAS 安装包签名 | Xcode 自动生成 |
| Apple Distribution | App Store 分发签名 | Xcode 自动生成 |
| Developer ID Application | 非 App Store 分发 | Apple Developer 后台 |
| Developer ID Installer | 非 App Store 安装包 | Apple Developer 后台 |
2. App ID(Identifier)注册
在 Apple Developer 后台注册应用的 Bundle ID:
Identifiers → App IDs → 点击 + 号
├── Description: 应用描述
├── Bundle ID: com.yourcompany.yourapp (需与 electron-builder 中的 appId 一致)
└── Capabilities: 按需勾选
text
3. Provisioning Profile
Profile 包含 App ID 和证书信息,是上架必需文件:
| Profile 类型 | 用途 |
|---|---|
| App Store Distribution Profile | MAS 打包使用 |
| Developer ID Profile | 非 MAS 分发 |
4. 两套构建配置
需要分别准备 MAS 和 DMG 两种打包配置:
{
"build": {
"mas": {
"type": "distribution",
"appId": "com.yourcompany.yourapp",
"entitlements": "build/entitlements.mas.plist",
"provisioningProfile": "build/embedded.provisionprofile"
},
"dmg": {
"type": "distribution",
"appId": "com.yourcompany.yourapp",
"entitlements": "build/entitlements.mac.plist"
}
}
}
json
App Store Connect 配置
创建应用
- 登录 App Store Connect
- 点击 "我的 App" → "+" → "新建 App"
- 填写应用信息:名称、Bundle ID、SKU、语言等
填写描述信息
- 应用名称与描述
- 截图(不同尺寸设备)
- 分类信息
- 隐私政策 URL
- 年龄分级
macOS Entitlements 配置
<!-- build/entitlements.mas.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-jit</key>
<true/>
</dict>
</plist>
xml
常见坑点与解决思路
| 坑点 | 原因 | 解决方案 |
|---|---|---|
| 证书冲突 | MAS 和 DMG 使用不同证书 | 确保 target 配置正确,不要混用 |
| 签名失败 | 本地存在多个开发者证书 | 在 Keychain 中只保留所需证书 |
| Profile 不匹配 | Bundle ID 与 App ID 不一致 | 检查 appId 和 Provisioning Profile |
| Entitlements 缺失 | 沙盒权限未配置 | 添加必要的 entitlements |
关键要点
- 上架 App Store 需要 5 个证书,其中 4 个可通过 Xcode 申请
- App ID 的 Bundle ID 必须与
electron-builder的appId完全一致 - MAS 和 DMG 使用不同的证书和配置文件,切勿混用
- App Store Connect 中创建应用是上架的前提
- Entitlements 配置需包含沙盒和 JIT 相关权限
↑